<?php

/**
* @package		auto_occasion
* @subpackage 	recherche
* @version      1
* @author       CMS
*/


/**
* Zone de la page de recherche en front
*
* @package auto_occasion
* @subpackage commun
*/
class FoRechercheCenterZone extends jZone {
 
	protected $_tplname='recherche~FoRechercheCenter.zone';

	/**
	* Chargement des données pour affichage
	*/
	protected function _prepareTpl(){
		global $gJCoord;
        jClasses::inc('commun~toolsFile');
        jClasses::inc('commun~common') ;
        jClasses::inc('commun~parametre') ;
        jClasses::inc('essais~essaisSrv');
        jClasses::inc('essais~chapitreSrv') ;

        // Récupération des parametres
        $critere = unserialize($_SESSION['SESS_ANNONCE_SEARCH']);
        $annonce = unserialize($_SESSION['SESS_ANNONCE_RESULT']);
        $oNavBar = unserialize($_SESSION['SESS_ANNONCE_NAVBAR']);

        //order
        $order = $gJCoord->request->getParam('order', '');
        $sort  = $gJCoord->request->getParam('sort', '');
        $limit = $gJCoord->request->getParam('limit', 20);
        if(($sort == '' ) && (isset($_SESSION['SESS_ANNONCE_SEARCH']))){
            
           $sessionCritereTmp = unserialize($_SESSION['SESS_ANNONCE_SEARCH']); 
           $sort = $sessionCritereTmp->sort_;
           unset($sessionCritereTmp);
        }
        if(($order == '' ) && (isset($_SESSION['SESS_ANNONCE_SEARCH']))){
            
           $sessionCritereTmp = unserialize($_SESSION['SESS_ANNONCE_SEARCH']); 
           $order = $sessionCritereTmp->order;
           unset($sessionCritereTmp);
        }

        foreach ($annonce['annonce'] as $k=>$item) {
            // récupération des photos
            $imgPath = PHOTO_ANNONCE_PATH;                
            if (!($item->photo_name)) {
                //tester si le repertoire existe
                $dirPath = JELIX_APP_WWW_PATH . PATH_ANNONCE_IMG . $item->IdOccasion;
                $photo = array();
                $trouve = false;
                $nophotos = true;
                if (is_dir($dirPath)){
                    //lister les images dans le repertoire
                    if ($dh = opendir($dirPath)) {
                        while (($file = readdir($dh)) !== false) {
                            $filename = $dirPath . '/'. $file;
                            $ext = explode(".", $file);
                            if ($nophotos && file_exists($filename) && isset($ext[1]) && toolsFile::is_image($ext[1])) {
                                // formation de l'objet photo
                                $images = new stdClass();
                                $images->photo_name = PATH_ANNONCE_IMG . $item->IdOccasion . '/' . $file;
                                $photo[] = $images;
                                $imgPath = "";
                                $nophotos = false;
                                $trouve = true;
                            }
                        }
                        closedir($dh);
                    }

                }
                if(!$trouve){
                    $images = new stdClass();
                    if (isset($item->marque_logo) && (strlen($item->marque_logo) != 0)) {
                        $images->photo_name = $item->marque_logo;
                        $photo[] = $images;
                    } else {
                        $images->photo_name = "design/front/images/no_image.jpg";
                        $photo[] = $images;
                    }
                }
                $item->photo_name = $photo[0]->photo_name;
            } else {
                $thePath = JELIX_APP_WWW_PATH . PHOTO_ANNONCE_PATH . $item->photo_name;
                if (file_exists($thePath)) {
                    $item->photo_name = PHOTO_ANNONCE_PATH . $item->photo_name;
                } else {
                    $item->photo_name = "design/front/images/no_image.jpg";
                }
            }
        }

        $nocritere  = $gJCoord->request->getParam('saveCritere', 0);

        $marque      = ($critere->marqueId) ? common::chargeParId($critere->marqueId, 'ao_marque') : common::init('ao_marque');
        $modele      = ($critere->modeleId) ? common::chargeParId($critere->modeleId, 'ao_modele') : common::init('ao_modele');
        $essai = common::init('ao_essais');

        $concurrence = $version = array();
        $essIdLinked = 0;
        $stop = false; // arrete de verifier les conditions pour le lien vers l'essai
        // vérifie si un essai existe pour la marque et le modele en cours
        if ($marque->marque_id) {
            // On cherche l'essai dans la gamme de la marque (si elle existe)
            // S'il n'y a pas d'essais, on ne met pas de liens
            jClasses::inc('marqueModele~marqueSrv') ;
            $essIdLinked = marqueSrv::isLinkedWithGamme($marque->marque_id) ; // true or false - retourne l'id de l'essai
            $stop = ($essIdLinked)? true : $stop;

            if ($modele->modele_id) {
                $essai   = essaisSrv::getAllModelsByMarqueInEssai($marque->marque_id, $modele->modele_id);

                // S'il y a un essai avec le modèle, on pointe vers cet essai
                $stop = (isset($essai[0]->ess_id) && $essai[0]->ess_id) ? true : $stop;
                // S'il y a plusieurs versions pour ce modèle, on pointe vers la page listant les versions
                if (!$stop) {
                    $version = chapitreSrv::loadChapter($essai[0]->ess_id,0,2);
                    // S'il n'y a pas d'essais pour modèle, on cherche l'article du modèle dans la gamme de la marque (si la gamme existe)
                }
            }
        }

        $linkFinancement = parametre::get(PARAM_LINK_FINANCEMENT);
        $this->_tpl->assign("annonce", $annonce['annonce']);
        $this->_tpl->assign("nbAnnonceFound", $annonce['nbRecords']);
        $this->_tpl->assign("oNavBar", $oNavBar);
        $this->_tpl->assign("marque", $marque);
        $this->_tpl->assign("nocritere", $nocritere);
        $this->_tpl->assign("order", $order);
        $this->_tpl->assign("sort", $sort);
        $this->_tpl->assign("linkFinancement", $linkFinancement);
        $this->_tpl->assign("essai", $essai);
        $this->_tpl->assign("modele", $modele);
        $this->_tpl->assign("limit", $limit);
        $this->_tpl->assign("version", $version);
        $this->_tpl->assign("essIdLinked", $essIdLinked);
    }
}